﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Domain.Model.Entidades.Agentes;
using Domain.Model.Repositories;
using Infrastructure.Base.InDatabase;
using Domain.Model.Agentes;

namespace InfraccionesWeb
{
    public partial class _Default : System.Web.UI.Page
    {
        //referencia a los servicios de agente
        AgenteService agenteService = new AgenteService(new BAgenteRepository());

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                llenarGrilla();
            }

        }
        private void llenarGrilla()
        {
            gdwAgente.DataSource = agenteService.All();
            gdwAgente.DataBind();
        }

        protected void gdrAgentes_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            gdwAgente.EditIndex = -1;
            llenarGrilla();
        }


        protected void gdrAgentes_RowEditing(object sender, GridViewEditEventArgs e)
        {
            gdwAgente.EditIndex = e.NewEditIndex;
            llenarGrilla();
        }

        protected void gdrAgentes_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            String id = ((TextBox)gdwAgente.Rows[e.RowIndex].FindControl("txtIdentity")).Text;
            String nombres = ((TextBox)gdwAgente.Rows[e.RowIndex].FindControl("txtNombres")).Text;
            String apellidos = ((TextBox)gdwAgente.Rows[e.RowIndex].FindControl("txtApellidos")).Text;
            String placa = ((TextBox)gdwAgente.Rows[e.RowIndex].FindControl("txtPlaca")).Text;
            String rango = ((TextBox)gdwAgente.Rows[e.RowIndex].FindControl("txtRango")).Text;


            agenteService.EditAgente(new AgenteId(id), nombres, apellidos, placa, rango);

            gdwAgente.EditIndex = -1;
            llenarGrilla();
        }
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            String nombres = txtNuevoNombre.Text;
            String apellidos = txtNuevaApellido.Text;
            String placa = txtNuevaPlaca.Text;
            String rango = txtNuevaRango.Text;

            agenteService.CreateAgente(nombres, apellidos, placa, rango);

            txtNuevoNombre.Text = txtNuevaApellido.Text = txtNuevaPlaca.Text = txtNuevaRango.Text = "";
            llenarGrilla();
        }

        protected void gdwAgente_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            String asd = "asd";
        }
    }
}
